In the field of networking and telecommunications, fuzzing is a testing technique used to discover security loopholes in software, operating systems, or in networks, primarily due to coding errors. Fuzzing tools, also referred to as fuzzers, perform this testing by generating massive amounts of random data or interdependent data patterns (referred to as fuzz) and bombard the system under test in an attempt to make it malfunction, stop functioning completely, or crash. The objective of fuzzing tools is to detect situations where the system under test malfunctions on receipt of specific fuzzed data so that vulnerabilities can be identified and corrected.
Network communications protocols that are tested using fuzzing are complex and continually evolving. The roles and responsibility of a networking entity or a node has been divided into multiple layers, which has been conceptualized in the open systems interconnect (OSI) 7-layer network communications protocol architecture. A complete network packet includes multiple segments, one for each of the layers. This makes the packet large and complex. In addition, protocol fields in one layer are logically related to one or more fields in other layers. When a packet needs to be fuzzed, the multiple fields of the packets need to be configured for fuzzing. The fields may belong to different segments or layers. It is very difficult to configure the set of fields just by picking them by name, as their positional relationship with respect to each other must be known to the test engineer. In addition, the test engineer must know the relationships between fields being fuzzed. As the number of fields to be fuzzed increases, the complexity of fuzz testing increases. Moreover, if it is desirable to do stateful fuzzing, the importance of knowing the interdependency between packet fields to be fuzzed increases. For example, because of this interdependency, it may not be possible to fuzz some fields.
Accordingly, in light of these difficulties, there exists a need for methods, systems, and computer readable media for simplistic visual representation of complex interdependent network protocol fields for network protocol fuzzing and graphical framework for reporting instantaneous system level progress.